package com.ykh.service;

import com.ykh.pojo.dto.PageParams;
import com.ykh.pojo.dto.VideoDto;
import com.ykh.pojo.po.User;
import com.ykh.pojo.po.Video;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ykh.pojo.vo.Result;
import com.ykh.pojo.vo.VideoVo;
import com.ykh.util.Constant;

import java.io.UnsupportedEncodingException;
import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author ykh
 * @since 2023年10月26日
 */
public interface VideoService extends IService<Video> {

    Result uploadVedio(VideoDto videoDto);

    Result getVideo(Integer videoId) throws UnsupportedEncodingException;

    List<VideoVo> getVideoList(PageParams pageParams);

    Result goodVideo(Integer videoId);

    boolean updatePlayCount(Integer videoId, Long playCount);

    boolean updateLikeCount(Integer videoId, Long likeCount);

    boolean updateLikeCount(Integer videoId);

    List<VideoVo> getUserVideoList(PageParams pageParams, String account);

    List<VideoVo> getVideoListByCategory(PageParams pageParams, Integer categoryId);

     void increasePlayCount(Integer videoId);

    void increaseLikeCount(Integer videoId);

    void increaseCommentCount(Integer videoId);

    boolean updateCommentCount(Integer videoId, Long commentCount);

    boolean updateCommentCount(Integer videoId);

    Long getVideoTotalPage(PageParams pageParams);

    Result delete(Integer videoId, User user);

    List<VideoVo> getHotVideoList(Integer size);

    List<VideoVo> getCurrentVideo(Integer videoId, Integer size);

    List<Integer> getAllVideo();
}
